<?php

namespace app\admin_module\controllers;

use app\common\ExceptionHandler;
use app\common\Helpers;
use app\models\Admin;
use yii\web\Controller;
use Yii;
use yii\data\Pagination;


class ManagerController extends CommonController
{
    public $layout='layout';

    public static $permissionDesc=[
        'list'=>['description'=>'管理员列表','role_only'=>[ROLE_AGENT_ONE,ROLE_INTERNET_CAFE]],
        'add'=>'添加管理员'
    ];

    /**
     * 管理员列表
     */
    public function actionList()
    {
        // 创建一个 DB 查询来获得所有 status 为 1 的文章
        $query = Admin::find();

        $data = Helpers::pagination($query, 6);

        return $this->render('list',$data);
    }

    /**
     * 新增管理员
     */
    public function actionAdd()
    {
        $model=new Admin();
        if(Yii::$app->request->isPost){
            //post过来的数据，视为登录操作
            $post=Yii::$app->request->post();
            $model->storeAdmin($post);

            //跳列表页
            $this->redirect(['manager/list']);
            Yii::$app->end();

        }else{
            return $this->render('add',['model'=>$model]);
        }
    }

    /**
     * 编辑管理员
     */
    public function actionEdit()
    {
        if(Yii::$app->request->isPost){
            $model=new Admin();
            //post过来的数据，视为登录操作
            $post=Yii::$app->request->post();
            $model->updateAdmin($post);

            //跳列表页
            $this->redirect(['manager/list']);
            Yii::$app->end();

        }else{
            !($id=Yii::$app->request->get('id',0)) && ExceptionHandler::throwCode(1004);
            !($model=Admin::findOne($id)) && ExceptionHandler::throwCode(1004);
            return $this->render('add',['model'=>$model]);
        }
    }

    /**
     * 修改管理员密码
     */
    public function actionPassword()
    {
        $model=new Admin();

        if(Yii::$app->request->isPost){
            //post过来的数据，视为登录操作
            $post=Yii::$app->request->post();
            $model->updatePassword($post);

            //跳列表页
            $this->redirect(['manager/list']);
            Yii::$app->end();

        }else{
            !($model->id=Yii::$app->request->get('id',0)) && ExceptionHandler::throwCode(1004);
            return $this->render('password',['model'=>$model]);
        }
    }

    /**
     * 删除管理员
     */
    public function actionDel()
    {
        $id=Yii::$app->request->get('id',0);
        $model=new Admin();
        $model->delAdmin($id);

        $this->redirect(['manager/list']);
    }

}
